package com.sgcc.pda.bluetooth.api;

import android.bluetooth.BluetoothDevice;
import android.content.Context;

import com.sgcc.pda.bluetooth.bluetoothmanager.BlueManager;

/**
 * 描 述：蓝牙管理实现类
 * 作 者：yangzhi
 * 时 间：2020/3/13 14:22
 * 版 本：1.0
 * 版 权： Copyright (c) remarkables-united.Co.Ltd. All rights reserved.
 */
public class BlueManagerImpl implements IBlueManagerInterface {

    /**
     * 配置蓝牙
     *
     * @param context      上下文
     * @param blueType     蓝牙类型 1 经典蓝牙, 2 ble低功耗蓝牙
     * @param isAutoReConn 是否自动重连，在蓝牙断开后自动连接上次连接的蓝牙
     * @param reConnCount  自动重连次数
     */
    @Override
    public void config(Context context, int blueType, boolean isAutoReConn, int reConnCount) {
        BlueManager.getInstance(context).setBlueType(blueType, isAutoReConn, reConnCount);
    }

    /**
     * 展示蓝牙列表页面
     *
     * @param activity 上下文
     */
    @Override
    public void showBluetoothView(Context activity) {
        BlueManager.getInstance(activity).showBluetoothView();
    }

    /**
     * 发送数据
     *
     * @param context  上下文
     * @param data     发送都数据
     * @param callBack 发送数据回调 只有接收结果返回
     */
    @Override
    public void sendData(Context context, String data, IReceiveCallBack callBack) {
        BlueManager.getInstance(context).sendData(data, callBack);
    }


    /**
     * 返回最近连接的蓝牙对象
     *
     * @return 蓝牙对象:类型、名称、地址、连接状态
     */
    @Override
    public BlueDeviceEntity getBlueDeviceEntity(Context activity) {
        return BlueManager.getInstance(activity).getBlueDeviceEntity();
    }

    /**
     * 已连接蓝牙状态监听
     * 通过监听蓝牙广播状态实现
     *
     * @param blueConnStatusListener 已连接、已断开
     */
    @Override
    public void setOnBlueConnStatusListener(Context activity, IBlueConnStatusListener blueConnStatusListener) {
        BlueManager.getInstance(activity).setOnBlueConnStatusListener(blueConnStatusListener);
    }

    /**
     * 获取最近连接的经典蓝牙对象
     */
    public BluetoothDevice getClsBlueDevice(Context activity) {
        return BlueManager.getInstance(activity).getClsBlueDevice();
    }

}
